/*
 * @Author: GL
 * @Date: 2022-12-28 14:24:00
 * @LastEditors: GL
 * @LastEditTime: 2023-04-09 00:36:44
 * @Description: des
 */
// 导入数据库操作模块
const db = require("../db/index")

// 查询收藏列表
const lsql = `SELECT * FROM collect c
INNER JOIN users u on c.user_id = u.id
INNER JOIN product p on c.product_id = p.product_id
where p.is_delete=0 and c.is_del=0 AND c.user_id=?
order by p.indate desc
`
exports.collectList = (req, res) => {
  db.query(lsql, req.auth.id, (err, results) => {
    // 1. 执行 SQL 语句失败
    if (err) return res.cc(err)

    // 2. 执行 SQL 语句成功
    res.send({
      status: 0,
      message: '获取成功！',
      data: results,
    })
  })
}

// 收藏商品
const selectSql = "select * from collect where user_id=? and product_id=? and is_del=0"
exports.addCollect = (req, res) => {
  db.query(selectSql, [req.auth.id, req.body.product_id], (err, results) => {
    
    // 执行 SQL 语句失败
    if (err) return res.cc(err)

    if (results.length === 1 && results[0].product_id == req.body.product_id) {
      return res.send({
        status: 1,
        message: '不允许重复收藏！',
      })    
    }

    const csql = `insert into collect set user_id=?,product_id=?,collect_time=?`
    // 获取当前时间
    const time = new Date()
    db.query(csql,[req.auth.id,req.body.product_id,time], (err, results) => {
      // SQL 语句执行失败
      if (err) return res.cc(err)

      // SQL 语句执行成功，但是影响行数不等于 1
      if (results.affectedRows !== 1) return res.cc('收藏失败！')

      // 新增成功
      res.send({
        status: 0,
        message: '收藏成功！',
      })
    })
  })
}

// 移除收藏
const rsql = `update collect set is_del=1 where collect.user_id = ? and product_id=?`
exports.removeCollect = (req, res) => {
  // res.send('ll')
  db.query(rsql, [req.auth.id,req.params.id], (err, results) => {
    // SQL 语句执行失败
    if (err) return res.cc(err)

    // SQL 语句执行成功，但是影响行数不等于 1
    if (results.affectedRows !== 1) return res.cc('移除失败！')

    // 移除成功
    res.send({
      status: 0,
      message: '移除成功！',
    })
  })
}

